package com.liujun.io.nio.mysql.bean.protocol.result;

import java.nio.ByteBuffer;
import java.util.Map;

import com.liujun.io.nio.mysql.bean.protocol.PackageHeader;
import com.liujun.io.nio.mysql.protocol.comm.MySQLMessage;
import com.liujun.io.nio.mysql.protocol.inf.DataParseInf;

/**
 * Result Set 消息体
 * 
 * 
 *[Result Set Header]列数量 当前消息体
 *[Field]列信息（多个）
 *[EOF]列结束
 *[Row Data]行数据（多个）
 *[EOF]数据结束
* 源文件名：ResultSetHander.java
* 文件版本：1.0.0
* 创建作者：liujun
* 创建日期：2016年12月14日
* 修改作者：liujun
* 修改日期：2016年12月14日
* 文件描述：TODO
* 版权所有：Copyright 2016 zjhz, Inc. All Rights Reserved.
*/
public class ResultSetHanderBean extends PackageHeader implements DataParseInf<ResultSetHanderBean> {

    /**
     * 列数量
    * @字段说明 fixCount
    */
    private int fieldCount;

    /**
     * 额外的数据
    * @字段说明 otherData
    */
    private long otherData;

    @Override
    public ResultSetHanderBean readPackage(ByteBuffer buffer) {
        MySQLMessage message = new MySQLMessage(buffer);
        // 包大小
        this.length = message.readUB3();
        // 序列
        this.seq = message.read();
        // Field结构计数：
        this.fieldCount = (int) message.readLength();
        // 额外的信息
        if (message.hasRemaining()) {
            this.otherData = message.readLength();
        }

        return this;
    }

    @Override
    public ByteBuffer getWriteToPackage(Map<String, Object> param) {
        return null;
    }

    @Override
    public int getpackageSize() {
        // TODO Auto-generated method stub
        return 0;
    }

    public int getFieldCount() {
        return fieldCount;
    }

    public void setFieldCount(int fieldCount) {
        this.fieldCount = fieldCount;
    }

    public long getOtherData() {
        return otherData;
    }

    public void setOtherData(long otherData) {
        this.otherData = otherData;
    }

}
